package com.utn.disenio.entrega1;

import static org.junit.Assert.*;

import java.util.Calendar;

import org.junit.Test;

import com.utn.disenio.entrega1.Iso;
import com.utn.disenio.entrega1.Latino;
import com.utn.disenio.entrega1.Norteamericano;

 
public class FechaTester {

	private Iso iso= new Iso("1991-01-15");
	private Latino latino = new Latino("25/02/1991");
	private Norteamericano norteamericano = new Norteamericano("04-16-2003");
	private Flexible flexA = new Flexible("06-20-2005");
	private Flexible flexL = new Flexible("17/07/1998");
	private Flexible flexI = new Flexible("1999-01-28");




	@Test
	public void testIso() {
		
		assertTrue(iso.getFecha().get(Calendar.YEAR)==1991);
		assertTrue(iso.getFecha().get(Calendar.MONTH)+1==01);
		assertTrue(iso.getFecha().get(Calendar.DAY_OF_MONTH)==15);
	}
	
	
	@Test
	public void testLatino() {

		assertTrue(latino.getFecha().get(Calendar.YEAR)==1991);
		assertTrue(latino.getFecha().get(Calendar.MONTH)+1==02);
		assertTrue(latino.getFecha().get(Calendar.DAY_OF_MONTH)==25);
	}
	
	
	@Test
	public void testAmerica() {
		
		assertTrue(norteamericano.getFecha().get(Calendar.YEAR)==2003);
		assertTrue(norteamericano.getFecha().get(Calendar.MONTH)+1==04);
		assertTrue(norteamericano.getFecha().get(Calendar.DAY_OF_MONTH)==16);
	} 
	
	
	@Test
	public void testMayor(){
		boolean result = latino.esMayorA(iso);
		assertTrue(result == true);
		
		boolean result2 = iso.esMayorA(latino);
		assertTrue(result2 == false);
		
	}
	
	@Test
	public void difDias(){
		int result = latino.tuDiferenciaCon(iso);
		assertTrue(result==41);
	}
	
	@Test
	public void testFlexL(){
		assertTrue(flexL.getFecha().get(Calendar.YEAR)==1998);
		assertTrue(flexL.getFecha().get(Calendar.MONTH)+1==07);
		assertTrue(flexL.getFecha().get(Calendar.DAY_OF_MONTH)==17);
	}
	
	@Test
	public void testFlexA(){
		assertTrue(flexA.getFecha().get(Calendar.YEAR)==2005);
		assertTrue(flexA.getFecha().get(Calendar.MONTH)+1==06);
		assertTrue(flexA.getFecha().get(Calendar.DAY_OF_MONTH)==20);
	}
	
	@Test
	public void testFlexI(){
		assertTrue(flexI.getFecha().get(Calendar.YEAR)==1999);
		assertTrue(flexI.getFecha().get(Calendar.MONTH)+1==01);
		assertTrue(flexI.getFecha().get(Calendar.DAY_OF_MONTH)==28);
	}
	
}



